*/ private $oldTokens = []; /** * @var RectorWithLineChange[] */ private $rectorWithLineChanges = []; public function __construct(string $filePath, string $fileContent) { $this->filePath = $filePath; $this->fileContent = $fileContent; $this->originalFileContent = $fileContent; } public function getFilePath() : string { return $this->filePath; } public function getFileContent() : string { return $this->fileContent; } public function changeFileContent(string $newFileContent) : void { if ($this->fileContent === $newFileContent) { return; } $this->fileContent = $newFileContent; $this->hasChanged = \true; } public function getOriginalFileContent() : string { return $this->originalFileContent; } public function hasChanged() : bool { return $this->hasChanged; } public function changeHasChanged(bool $status) : void { $this->hasChanged = $status; } public function setFileDiff(FileDiff $fileDiff) : void { $this->fileDiff = $fileDiff; } public function getFileDiff() : ?FileDiff { return $this->fileDiff; } /** * @param Stmt[] $newStmts * @param Stmt[] $oldStmts * @param array $oldTokens */ public function hydrateStmtsAndTokens(array $newStmts, array $oldStmts, array $oldTokens) : void { if ($this->oldStmts !== []) { throw new ShouldNotHappenException('Double stmts override'); } $this->oldStmts = $oldStmts; $this->newStmts = $newStmts; $this->oldTokens = $oldTokens; } /** * @return Stmt[] */ public function getOldStmts() : array { return $this->oldStmts; } /** * @return Stmt[] */ public function getNewStmts() : array { return $this->newStmts; } /** * @return array */ public function getOldTokens() : array { return $this->oldTokens; } /** * @param Node[] $newStmts */ public function changeNewStmts(array $newStmts) : void { $this->newStmts = $newStmts; } public function addRectorClassWithLine(RectorWithLineChange $rectorWithLineChange) : void { $this->rectorWithLineChanges[] = $rectorWithLineChange; } /** * @return RectorWithLineChange[] */ public function getRectorWithLineChanges() : array { return $this->rectorWithLineChanges; } }